#ifndef __LOG_LEVEL_H__
#define __LOG_LEVEL_H__

/*
* UNKNOWN: 未知等级日志
* DEBUG: 调试等级日志
* INFO: 提示等级日志
* WARNING: 警告等级日志
* ERROR: 错误等级日志
* FATAL: 致命错误等级日志
* OFF: 关闭日志
*/

// 日志优先级: UNKNOWN < DEBUG < INFO < WARNING < ERROR < FATAL < OFF
// 规定: 项目中设置默认输出日志等级, 只有输出日志等级大于默认输出日志等级才可输出

namespace log_system
{
    class LogLevel
    {
    public:
        enum Level
        {
            UNKNOWN = 0,
            DEBUG,
            INFO,
            WARNING,
            ERROR,
            FATAL,
            OFF
        };

        static const char *levelTransform(const Level &level) // 枚举转换为字符串
        {
            switch (level)
            {
            case DEBUG:
                return "DEBUG";
            case INFO:
                return "INFO";
            case WARNING:
                return "WARNING";
            case ERROR:
                return "ERROR";
            case FATAL:
                return "FATAL";
            case OFF:
                return "OFF";
            default:
                return "UNKNOWN";
            }
            return "UNKNOWN";
        }
    };

} // namespace log-system

#endif // #ifndef __LOG_LEVEL_H__
